// *******************************************************************************************************
// # 通勤・通学時間から探す
//   ・検索
//   ・インプットフォーカス
//   ・賃料
//   ・間取り　人数
//
// *******************************************************************************************************
this.rjapmn_md = this.rjapmn_md || {};

$(function(){
	var isUnderIe6 = uaInfo.isIe && uaInfo.ieVr <= 6,
		isUnderIe7 = uaInfo.isIe && uaInfo.ieVr <= 7;

	rjapmn_md.data = {};

	rjapmn_md.data.posArray = [null, "init"];

	rjapmn_md.data.INTERVAL_FADEIN = 800;
	rjapmn_md.data.INTERVAL_DOOR_TWEEN = 1200;
	rjapmn_md.data.INTERVAL_DOOR_WAIT = 500;
	rjapmn_md.data.KEY = 0;

	/*******************************************************
	 *　検索
	 *******************************************************/
	var appendWrapper = new APMN.AppendWrapper({
		isFixed: true,
		ieVr: !(isUnderIe6)
	});

	/*******************************************************
	 *　駅選択イベント
	 *******************************************************/
	rjapmn_md.selectEki = function(idx,name, rosencd, ekicd){
		$('#input-station' + idx).val(name);
		$('#input-ekicode' + idx).val(rosencd);
		$('#input-eki' + idx).val(name);
		$('#input-target' + idx).val(ekicd);

		$('#select_list' + idx).hide();
		$('#select_list' + idx).empty();
		UpdateStatus();
	}
	rjapmn_md.clearEki = function(idx){
		$('#input-ekicode' + idx).val('');
		$('#input-target' + idx).val('');
		$('#input-eki' + idx).val('');
		UpdateStatus();
	}
	var canSearch;
	$btn = $('.mod_btn_append a');

	function UpdateStatus(){
		var isSlt = false;
		var isSltMadori = false;

		var txtbox = $('input[name=input-ekicode]');

		txtbox.each(function(i){
			if ($(this).val() != '')
				isSlt = true;
		});

		$('input[type=checkbox][name^=madori]').each(function(index){
				if ($(this).attr('checked') == 'checked')
					isSltMadori = true;
		});

		$('input:checked').each(function(index){
			var elem = $(this);
			var val = elem.attr("value");
			if(elem.attr('name').indexOf('madori') == 0){
				isSltMadori = true;
			}
		});

		//最終条件判断
		isSlt = isSlt & isSltMadori;

		if (canSearch != isSlt) {
			canSearch = isSlt;
			if (canSearch) {
				$btn.removeClass('mod_btn_disabled');
				appendWrapper.show();
			} else {
				$btn.addClass('mod_btn_disabled');
				appendWrapper.hide();
			};
		};
	};

	/*******************************************************
	 * インプットフォーカス
	 *******************************************************/
	function inputTextBox(){
		var txtbox = $('#contentMain input:text');

		txtbox.each(function(i){
			$(this).focus(function(){
				$(this).addClass('input-focus');
				if(this.value == this.defaultValue){
					$(this).val('');
				}
			}).blur(function(){
				if(this.value == ''){
					$(this).val(this.defaultValue).removeClass('input-focus');
				}
			});
			if (this.value != this.defaultValue) {
				$(this).addClass('input-focus');
			};
		});
	};


	/*******************************************************
	 * 賃料
	 *******************************************************/
	function rentSelect(){
		var $list = $('.box_rent'),
			$down = $('.box_rent .mod_select_content').eq(0),
			$up =   $('.box_rent .mod_select_content').eq(1),
			dwVal = parseInt($down.find('select').val()),
			upVal = parseInt($up.find('select').val()),
			isChanging = false;

		$down.on('change', function(e){
			dwVal = parseInt($(this).find('select').val());
			if (isChanging) return;
			check();
		});
		$up.on('change', function(e){
			upVal = parseInt($(this).find('select').val());
			if (isChanging) return;
			check();
		});

		function check(){
			isChanging = true;
			if (dwVal != 0 && upVal != 0 && dwVal > upVal) {
				var _val1 = upVal;
				var _val2 = dwVal;
				dwVal = _val1;
				upVal = _val2;
				$down.find('select').val(_val1);
				$up.find('select').val(_val2);
				$down.find('.custom_selectInner').text(toSelectText(_val1));
				$up.find('.custom_selectInner').text(toSelectText(_val2));
			};
			isChanging = false;
		};
		function toSelectText(str){
			return str * 0.0001 + '万円';
		};
	};


	/*******************************************************
	 *　間取り　人数
	 *******************************************************/
	function madoriSelect(){
		var $box = $('.box_madori'),
			$type = $box.find('.list_btn_type li'),
			$typeBox = $box.find('input[name=room_type]'),
			$room = $box.find('.list_checkbox5 li'),
			$roomBtn = $box.find('.room_over'),
			data = {
				single: ['ワンルーム','1K','1DK','1LDK','2K','2DK'],
				double: ['1LDK','2K','2DK','2LDK','3K','3DK','3LDK'],
				family: ['2LDK','3K','3DK','3LDK','4K','4DK','4LDK','5K以上']
			},
			id = $typeBox.val(),
			isCheck = null;

		$type.each(function(i){
			var _id = $(this).attr('class');
			$(this).on('click', function(e){
				id = _id;
				$typeBox.val(id);
				changeType();
				changeRoom();
				checkUnder();
			});
		});
		$room.each(function(i){
			if (!isUnderIe7) {
				$(this).find('input').on('ifChecked', function(e){
					checkUnder();
				}).on('ifUnchecked', function(e){
					checkUnder();
				});
			} else {
				$(this).find('input').on('click', function(e){
					checkUnder();
				});
			};
		});

		function changeType(){
			$type.each(function(i){
				if ($(this).attr('class') == id) {
					$(this).find('a').addClass('active');
				} else {
					$(this).find('a').removeClass('active');
				};
			});
		};
		function changeRoom(){
			$room.each(function(i){
				var $self = $(this).find('input'),
					_id = $self.val(),
					_on = false,
					_len = data[id].length;
				for (var j = 0; j < _len; j++) {
					if (data[id][j] == _id) {
						_on = true;
						break;
					};
				};
				if (!isUnderIe7) {
					if (_on) {
						$self.iCheck('check');
					} else {
						$self.iCheck('uncheck');
					};
				} else {
					$self.prop('checked', _on);
				};
			});
		};
		function checkUnder(){
			if (isCheck) return;
			var _id = null;
			setTimeout(function(e){
				$room.each(function(i){
					var $self = $(this).find('input');
					if ($self.prop('checked')) {
						_id = $self.val();
						return false;
					};
				});
				if (_id) {
					$('#madoriGroup').val(_id);
					$roomBtn.find('span').text(_id + 'より大きい間取りはすべて検索');
					$roomBtn.removeClass('mod_btn_disabled');
					if (!isUnderIe7) {
						$roomBtn.find('input').iCheck('enable');
					} else {
						$roomBtn.find('input').prop('disabled', false);
					};
				} else {
					$('#madoriGroup').val('');

					$roomBtn.find('span').text('間取りを選択');
					$roomBtn.addClass('mod_btn_disabled');
					$roomBtn.removeClass('mod_checked');
					if (!isUnderIe7) {
						$roomBtn.find('input').iCheck('uncheck');
						$roomBtn.find('input').iCheck('disable');
					} else {
						$roomBtn.find('input').prop('checked', false);
						$roomBtn.find('input').prop('disabled', true);
					};
				};
				var _w = $roomBtn.find('label').width();
				$roomBtn.css({ marginLeft:158+(315-_w)*0.5 });
				isCheck = null;
			}, 1);

			UpdateStatus();
		};

		if ($roomBtn.find('input').prop('checked')) {
			$roomBtn.addClass('mod_checked');
		};

		//初期選択を行う　無効15/01/07
//		if (id=='' || !id) {
//			id = 'double';
//			$typeBox.val(id);
//			changeRoom();
//		};
		changeType();
		checkUnder();
	};

	function submit(action, method, values) {
	 	   var form = $('<form/>', {
		        action: action,
		        method: method
		    });
		    $.each(values, function() {
		        form.append($('<input/>', {
		            type: 'hidden',
		            name: this.name,
		            value: this.value
		        }));
		    });
		    form.appendTo('body').submit();
		}

	//駅検索テキストボックスのイベント設定
//	$("input[name='input-station']").keyup(function(e){
//
//		var idx = $(this).data('seq');
//		if(rjapmn_md.data.KEY == e.keyCode || e.keyCode == 32)
//			return;
//		rjapmn_md.data.KEY = e.keyCode;

	$("input[name='input-station']").on('propertychange input', function() {
		var idx = $(this).data('seq');

		//テキストボックスが変更されたらClear
		if 	($('#input-eki' + idx).val() != $(this).val())
		{
			rjapmn_md.clearEki(idx);
			$('#select_list' + idx).empty();
			$('#select_list' + idx).hide();
		}

		//4byte以上→検索
		if(countJapaneseString($(this).val()) > 1){

			AjaxEkiSearch(idx,$(this).val());

		}


	})
		.focusout(function() {
			var idx = $(this).data('seq');

			var iptstr = $('#input-station' + idx).val();
    		var items = $('#select_list' + idx).children();

    		if (iptstr != '')
			{
    			//候補がひとつの場合
        		if (items.length == 1)
        		{
        			$('#select_list' + idx).find('a').click();
        		}
        		//複数の場合
        		else if (items.length > 1)
    			{
        			$('#select_list' + idx).show();
    			}
    		}


		});


	function countJapaneseString(str) {
	    var r = 0;
	    for (var i = 0; i < str.length; i++) {
	        var c = str.charCodeAt(i);
	        // Shift_JIS: 0x0 ～ 0x80, 0xa0 , 0xa1 ～ 0xdf , 0xfd ～ 0xff
	        // Unicode : 0x0 ～ 0x80, 0xf8f0, 0xff61 ～ 0xff9f, 0xf8f1 ～ 0xf8f3
	        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
	            //r += 1; //全角文字だけカウントする。
	        } else {
	            r += 1;
	        }
	    }
	    return r;
	}

	//ajax実行状況 0=待機、1=実行中
	var ajaxstatus = 0;
	function AjaxEkiSearch(idx,keyword)
	{
		if (keyword == undefined || keyword == '' || countJapaneseString(keyword) < 2)
			return;

		if (ajaxstatus != 0)
			return;


		ajaxstatus = 1;
		$.ajax({
			beforeSend: function(xhr){
		    	 xhr.overrideMimeType("text/html;charset=UTF-8");
			},
			type: 'POST',
			url: '/areaajax/getekirosencd/',
			dataType: 'text',
			data:{eki:keyword,likeop:"1"},
			success: function(data) {
				ajaxstatus = 0;
				if ($("#input-station" + idx).val() != keyword)
					{
						AjaxEkiSearch(idx,$("#input-station" + idx).val());
						return;
					}
				if(data != undefined && data != '' && data.replace(/(\r\n|\n|\r)/gm,"") != ''){
					$('#select_list' + idx).empty();

					//データフォーマット駅（都道府県）|都道府県CDー駅CD;...
					  var vals = data.split(';');
					  for(var i = 0; i < vals.length; i++){
						  var splitVals = vals[i].replace(/(\r\n|\n|\r)/gm,"").split('|');
						  $('#select_list' + idx).append('<li><a href="javascript:rjapmn_md.selectEki(' + idx + ",'" + splitVals[0] + "','" + splitVals[1] + "','" + splitVals[2] + "')" + '"' + '>' + splitVals[0] + '</a></li>')

					  }

					//候補がある場合
	        		if (vals.length > 0)
	        		{
	        			$('#select_list' + idx).show();
	        		}
				}

			},
			error:function() {
				$('#select_list' + idx).hide();
				$('#select_list' + idx).empty();
			}
		});
	}


	//検索ボタンクリック
	$(".mod_btn_all").click(function() {

		if (!canSearch)
		{
			return;
		}

		var items=[];
		var typ = $('input[name="search_type"]').attr("value");
		var listtype = $('#listtype').val();
		items.push({name:'search_type',value:typ});

		var ekis = '';
		for(var i = 1; i <= 3; i++){
			if ($('#input-ekicode' + i).val() != '')
				{
					var ek = $('#input-ekicode' + i).val().split('-');
					ekis = ekis + ek[ek.length-1];

					ekis = ekis + ':' + $('#input-time' + i).val();
					ekis = ekis + ':' + $('#input-transfer' + i).val() + ";";
				}
		}

		items.push({name:"tsukintargetekicd",value:ekis});

		items.push({name:"target_0",value:$('#input-target1').val()});
		items.push({name:"target_1",value:$('#input-target2').val()});
		items.push({name:"target_2",value:$('#input-target3').val()});


		//グループ
		if($('#madoriGroupCheck').attr('checked')){
			var firstIndex = -1;
			var firstMadori = $('#madoriGroup').val();
			$('input[type=checkbox][name^=madori]').each(function(index){
				if($(this).val() == firstMadori){
					firstIndex = index;
					return;
				}
			});

			$('input[type=checkbox][name^=madori]').each(function(index){
				if(index >= firstIndex && $(this).attr('id') != 'madoriGroup'){
					$(this).attr('checked', true);
				}
			});
		}
		//グループ

		$('input:checked').each(function(index){
			var elem = $(this);
			var val = elem.attr("value");
			if(elem.attr('name').indexOf('madori') == 0){
				val = 'on';
			}
			if(elem.attr("name") != ""){
				items.push({name:elem.attr("name"), value:val});
			}
		});



		//CheckBox
		$('input:checked').each(function(index){
			var elem = $(this);
			var val = elem.attr("value");
			if(elem.attr('name').indexOf('madori') == 0){
				val = 'on';
			}
			if(elem.attr("name") != ""){
				items.push({name:elem.attr("name"), value:val});
			}
		});

		//Dropdown
		$('select').each(function(index){
			var elem = $(this);
			items.push({name:elem.attr("name"),
				    value:elem.find("option:selected").attr("value")});
		});
//
//		//★★★検索する前家賃と間取り条件をCookieに保存する
//		var tinryo1 = $('select[name=tinryo1]').first().val();
//		var tinryo2 = $('select[name=tinryo2]').first().val();
//		if(tinryo2 == '9999999') tinryo2 = '0'
//		var madori = [];
//		$('input[name^=madori]:checked').each(function(){
//			madori.push($(this).attr('name'));
//		});
//		var cons = "tinryo1:" + tinryo1 + "|tinryo2:" + tinryo2 + "|madori:" + madori.join();
//		$.cookie.defaults = { path: '/' };
//		$.cookie('SAVE_CONS', cons);

		//submit('/rstobi/rstobi','POST',items);
		submit('/search/tsukintsugakujikansearch/','POST',items);

	});

	// init
	inputTextBox();
	rentSelect();
	madoriSelect();
	UpdateStatus();

	$(window).unload(function(){

		});
});

